package com.wechat.wins.handler;

public class ControllerMappingRegistry {
//    private static final Logger logger = LoggerFactory.getLogger(ControllerMappingRegistry.class);
//
//    private static final Map<String, ControllerMapping> getMappings = new HashMap<>(64);
//
//    private static final Map<String, ControllerMapping> postMappings = new HashMap<>(64);
//
//    private static final Map<String, ControllerMapping> putMappings = new HashMap<>(64);
//
//    private static final Map<String, ControllerMapping> deleteMappings = new HashMap<>(64);
//
//    private static final Map<String, ControllerMapping> patchMappings = new HashMap<>(64);
//
//    /**
//     * 缓存 REST 控制器类
//     */
//    private static final Map<String, ControllerBean> beans = new HashMap<>(128);
//
//    /**
//     * 缓存 REST 控制器类单例
//     */
//    private static final Map<String, Object> singletons = new ConcurrentHashMap<>(128);
//
//    /**
//     * 注册Controller Bean
//     *
//     * @param name
//     * @param clazz
//     */
//    public static void registerBean(final String name, final ControllerBean bean) {
//        beans.put(name, bean);
//    }
//
//    /**
//     * 得到Controller Bean
//     *
//     * @param name
//     * @return
//     */
//    public static ControllerBean getBean(final String name) {
//        return beans.get(name);
//    }
//
//    /**
//     * 注册Controller类的单例
//     *
//     * @param name
//     * @param singleton
//     */
//    public static void registerSingleton(final String name, final Object singleton) {
//        singletons.put(name, singleton);
//    }
//
//    /**
//     * 得到单例
//     *
//     * @param name
//     * @return
//     */
//    public static Object getSingleton(final String name) {
//        if (singletons.containsKey(name)) {
//            return singletons.get(name);
//        }
//
//        Class<?> clazz = null;
//        try {
//            clazz = Class.forName(name);
//        } catch (final ClassNotFoundException e) {
//            logger.error("Class not found: {}", name);
//            return null;
//        }
//        Object instance = null;
//        try {
//            instance = clazz.newInstance();
//        } catch (final InstantiationException | IllegalAccessException e) {
//            logger.error("Create class instance failure: {}", name);
//            return null;
//        }
//        final Object result = singletons.putIfAbsent(name, instance);
//        if (result == null) {
//            return instance;
//        }
//        return result;
//    }
//
//    /**
//     * 注册 Get Mapping
//     *
//     * @param url
//     * @param mapping
//     */
//    public static void registerGetMapping(final String url, final ControllerMapping mapping) {
//        getMappings.put(url, mapping);
//    }
//
//    /**
//     * 得到Get映射哈希表
//     *
//     * @return
//     */
//    public static Map<String, ControllerMapping> getGetMappings() {
//        return getMappings;
//    }
//
//    /**
//     * 注册 Post Mapping
//     *
//     * @param url
//     * @param mapping
//     */
//    public static void registerPostMapping(final String url, final ControllerMapping mapping) {
//        postMappings.put(url, mapping);
//    }
//
//    /**
//     * 得到Post映射哈希表
//     *
//     * @return
//     */
//    public static Map<String, ControllerMapping> getPostMappings() {
//        return postMappings;
//    }
//
//    /**
//     * 注册 Put Mapping
//     *
//     * @param url
//     * @param mapping
//     */
//    public static void registerPutMapping(final String url, final ControllerMapping mapping) {
//        putMappings.put(url, mapping);
//    }
//
//    /**
//     * 得到Put映射哈希表
//     *
//     * @return
//     */
//    public static Map<String, ControllerMapping> getPutMappings() {
//        return putMappings;
//    }
//
//    /**
//     * 注册 Delete Mapping
//     *
//     * @param url
//     * @param mapping
//     */
//    public static void registerDeleteMapping(final String url, final ControllerMapping mapping) {
//        deleteMappings.put(url, mapping);
//    }
//
//    /**
//     * 得到Delete映射哈希表
//     *
//     * @return
//     */
//    public static Map<String, ControllerMapping> getDeleteMappings() {
//        return deleteMappings;
//    }
//
//    /**
//     * 注册 Patch Mapping
//     *
//     * @param url
//     * @param mapping
//     */
//    public static void registerPatchMapping(final String url, final ControllerMapping mapping) {
//        patchMappings.put(url, mapping);
//    }
//
//    /**
//     * 得到Patch映射哈希表
//     *
//     * @return
//     */
//    public static Map<String, ControllerMapping> getPatchMappings() {
//        return patchMappings;
//    }

}
